package sym0920;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

public class J18SimpleDateFormat {

	public static void main(String[] args) {
		//DateFormat
		//Date 클래스나 Calendar 클래스로 날짜와 시간을 출력하는 것은
		//많은 비용이 필요
		//적은 비용으로 간편하게 날짜 / 시간을 출력하려면
		//DateFormat를 사용하자!
		//단, 자주 사용하는 출력 형태를 4가지로 분류
		Date now = new Date();

		//2014. 4. 3 - MEDIUM과 같다.
		DateFormat df = DateFormat.getDateInstance();
		System.out.println(df.format(now));
		
		//2014년 4월 3일 목요일
		df = DateFormat.getDateInstance(DateFormat.FULL);
		System.out.println(df.format(now));
		
		//2014년 4월 3일 (목)
		df=DateFormat.getDateInstance(DateFormat.LONG);
		System.out.println(df.format(now));
		
		//2014. 4. 3
		df=DateFormat.getDateInstance(DateFormat.MEDIUM);
		System.out.println(df.format(now));
		
		//14. 4. 3
		df=DateFormat.getDateInstance(DateFormat.SHORT);
		System.out.println(df.format(now));
		
		//오후 4:17:48 - MEDIUM과 같다.
		df=DateFormat.getTimeInstance();
		System.out.println(df.format(now));

		//오후 4시 17분 48초 KST
		df=DateFormat.getTimeInstance(DateFormat.FULL);
		System.out.println(df.format(now));
		
		//오후 4시 17분 48초
		df=DateFormat.getTimeInstance(DateFormat.LONG);
		System.out.println(df.format(now));
		
		//오후 4:17:48
		df=DateFormat.getTimeInstance(DateFormat.MEDIUM);
		System.out.println(df.format(now));
		
		//오후 4:17
		df=DateFormat.getTimeInstance(DateFormat.SHORT);
		System.out.println(df.format(now));

		//SimpleDateFormat
		//DateFormat 이 지원하는 출력형태 외
		//다양하게 날짜와 시간을 출력하기 위해 사용
		//y : 연도를 표시하는 패턴 (yy,yyyy)
		//M : 현재 월을 표시하는 패턴(M,MM) 한 자리수 일때 앞에 0이 붙냐 안붙냐의 차이
		//d : 현재 일을 표시하는 패턴(d,dd) 한 자리수 일때 앞에 0이 붙냐 안붙냐의 차이
		//E : 현재 요일을 표시하는 패턴(E)
		//D : 현재 연도를 기준으로 총 일수를 표시 (DDD)
		
		//h : 현재 시간을 출력 (h,hh)
		//m : 현재 분을 출력 (m,mm)
		//s : 현재 초를 출력 (s,ss)
		//a : 현재 시간의 오전/오후 여부를 출력 (a)
		String fmt = "yyyy-MM-dd";
		SimpleDateFormat sdf = new SimpleDateFormat(fmt);
		System.out.println(sdf.format(now));
		
		fmt = "yyyy년 MM월 dd일";
		sdf = new SimpleDateFormat(fmt);
		System.out.println(sdf.format(now));

		fmt = "yyyy년 MM월 dd일 E요일";
		sdf = new SimpleDateFormat(fmt);
		System.out.println(sdf.format(now));
		
		fmt = "yyyy년 MM월 dd일 E요일 a h:mm:ss";
		sdf = new SimpleDateFormat(fmt);
		System.out.println(sdf.format(now));


		
	}//main

}
